
package com.scs.application.modules.base.vo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
* 耗材报价资质实体对象
*/
@TableName("material_bid_cert")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class MaterialBidCertVO extends DataEntity  implements Serializable {

    /** 报价单ID */
    private Long bidId;

    /** 资质类型 */
    @NotBlank(message = "资质类型不能为空")
    @Length(min = 1, max = 20, message = "资质类型长度必须介于 1 和 20 之间")
    private String certType;

    /** 资质名称*/
    @NotBlank(message = "资质名称不能为空")
    @Length(min = 1, max = 50, message = "资质名称长度必须介于 1 和 50 之间")
    private String certName;

    @Length(max=30, message="资质编号长度必须介于 0 和 30 之间")
    private String certificateNo;

    /** 有效期开始 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date expiryStartDate;

    /** 有效期结束 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date expiryEndDate;

    /** 业务ID */
    private Long busId;

    /** 业务名称 */
    @Length(max = 20, message = "业务名称长度必须介于 0 和 20 之间")
    private String busName;

    /** 平台资质ID */
    private Long certId;

    /** 文档ID数组 */
    private JSONArray docIds;


    /** 院方分类ID */
    private Long catalogIdHospital;

    /** 院方分类名称 */
    //@Length(max = 100, message = "院方分类名称长度必须介于 0 和 100 之间")
    private String catalogNameHospital;

    /** 平台分类ID */
    private Long catalogId;

    /** 平台分类名称 */
    //@Length(max = 100, message = "平台分类名称长度必须介于 0 和 100 之间")
    private String catalogName;

    /** 品名 */
    @NotBlank(message = "品名不能为空")
    @Length(min = 1, max = 100, message = "品名长度必须介于 1 和 100 之间")
    private String materialName;

    /** 品规 */
    @NotBlank(message = "品规不能为空")
    @Length(min = 1, max = 100, message = "品规长度必须介于 1 和 100 之间")
    private String materialSpec;

    /** 厂商 */
    @NotBlank(message = "厂商不能为空")
    @Length(min = 1, max = 100, message = "厂商长度必须介于 1 和 100 之间")
    private String manufacturerName;

    /** 单品单位 */
    @NotBlank(message = "单品单位不能为空")
    @Length(min = 1, max = 10, message = "单品单位长度必须介于 1 和 10 之间")
    private String skuUnit;

    /** 最大文件长度 */
    private Integer maxiumFileSize;

    /** 最大文件数量 */
    private Integer maxiumFileCount;

    /** 限制文件类型 */
    private String limitFileExtension;

    private String flowStatus;

}
